package com.babble.comment.service;

import com.babble.comment.dto.CommentDTO;
import com.babble.comment.dto.QueryCommentDTO;
import com.babble.comment.entity.Comment;
import com.babble.comment.vo.CommentVO;
import com.babble.comment.vo.UserCommentsVO;
import org.springblade.core.mp.support.Query;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 评论模块服务
 *
 * @author wm
 */
public interface ICommentService {
	/**
	 * 分页获取当前博客评论
	 *
	 * @param blogId 博客id
	 * @param query  分页查询参数
	 * @return
	 */
	Page<CommentVO> list(String blogId, int source, Query query);

	/**
	 * 创建评论
	 *
	 * @param comment 评论DTO
	 * @return 评论实体
	 */
	Comment create(CommentDTO comment);

	/**
	 * 单独删除评论
	 *
	 * @param id     删除评论的id
	 * @param blogId 删除评论的博客id
	 */
	void delete(String id, String blogId);

	/**
	 * 批量删除评论
	 *
	 * @param ids 删除的id数组
	 */
	void delete(List<String> ids);

	/**
	 * 获取当前用户发表的评论/回复
	 *
	 * @return
	 */
	UserCommentsVO getUserComments();

	/**
	 * 根据查询条件分页查询所有评论
	 *
	 * @param queryCommentDTO 查询条件
	 * @return
	 */
	Page<CommentVO> queryPage(QueryCommentDTO queryCommentDTO);
}
